/*
 * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package org.omg.CORBA;

/**
 * Defines the methods used to read primitive data types from input streams
 * for unmarshaling custom value types.  This interface is used by user
 * written custom unmarshaling code for custom value types.
 *
 * @see org.omg.CORBA.DataOutputStream
 * @see org.omg.CORBA.CustomMarshal
 */
public interface DataInputStream extends org.omg.CORBA.portable.ValueBase {
    /**
     * Reads an IDL <code>Any</code> value from the input stream.
     *
     * @return the <code>Any</code> read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    org.omg.CORBA.Any read_any();

    /**
     * Reads an IDL boolean value from the input stream.
     *
     * @return the boolean read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    boolean read_boolean();

    /**
     * Reads an IDL character value from the input stream.
     *
     * @return the character read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    char read_char();

    /**
     * Reads an IDL wide character value from the input stream.
     *
     * @return the wide character read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    char read_wchar();

    /**
     * Reads an IDL octet value from the input stream.
     *
     * @return the octet value read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    byte read_octet();

    /**
     * Reads an IDL short from the input stream.
     *
     * @return the short read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    short read_short();

    /**
     * Reads an IDL unsigned short from the input stream.
     *
     * @return the unsigned short read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    short read_ushort();

    /**
     * Reads an IDL long from the input stream.
     *
     * @return the long read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    int read_long();

    /**
     * Reads an IDL unsigned long from the input stream.
     *
     * @return the unsigned long read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    int read_ulong();

    /**
     * Reads an IDL long long from the input stream.
     *
     * @return the long long read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    long read_longlong();

    /**
     * Reads an unsigned IDL long long from the input stream.
     *
     * @return the unsigned long long read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    long read_ulonglong();

    /**
     * Reads an IDL float from the input stream.
     *
     * @return the float read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    float read_float();

    /**
     * Reads an IDL double from the input stream.
     *
     * @return the double read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    double read_double();
    // read_longdouble not supported by IDL/Java mapping

    /**
     * Reads an IDL string from the input stream.
     *
     * @return the string read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    String read_string();

    /**
     * Reads an IDL wide string from the input stream.
     *
     * @return the wide string read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    String read_wstring();

    /**
     * Reads an IDL CORBA::Object from the input stream.
     *
     * @return the CORBA::Object read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    org.omg.CORBA.Object read_Object();

    /**
     * Reads an IDL Abstract interface from the input stream.
     *
     * @return the Abstract interface read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    java.lang.Object read_Abstract();

    /**
     * Reads an IDL value type from the input stream.
     *
     * @return the value type read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    java.io.Serializable read_Value();

    /**
     * Reads an IDL typecode from the input stream.
     *
     * @return the typecode read.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    org.omg.CORBA.TypeCode read_TypeCode();

    /**
     * Reads array of IDL Anys from offset for length elements from the
     * input stream.
     *
     * @param seq    The out parameter holder for the array to be read.
     * @param offset The index into seq of the first element to read from the
     *               input stream.
     * @param length The number of elements to read from the input stream.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    void read_any_array(org.omg.CORBA.AnySeqHolder seq, int offset, int length);

    /**
     * Reads array of IDL booleans from offset for length elements from the
     * input stream.
     *
     * @param seq    The out parameter holder for the array to be read.
     * @param offset The index into seq of the first element to read from the
     *               input stream.
     * @param length The number of elements to read from the input stream.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    void read_boolean_array(org.omg.CORBA.BooleanSeqHolder seq, int offset, int length);

    /**
     * Reads array of IDL characters from offset for length elements from the
     * input stream.
     *
     * @param seq    The out parameter holder for the array to be read.
     * @param offset The index into seq of the first element to read from the
     *               input stream.
     * @param length The number of elements to read from the input stream.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    void read_char_array(org.omg.CORBA.CharSeqHolder seq, int offset, int length);

    /**
     * Reads array of IDL wide characters from offset for length elements from the
     * input stream.
     *
     * @param seq    The out parameter holder for the array to be read.
     * @param offset The index into seq of the first element to read from the
     *               input stream.
     * @param length The number of elements to read from the input stream.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    void read_wchar_array(org.omg.CORBA.WCharSeqHolder seq, int offset, int length);

    /**
     * Reads array of IDL octets from offset for length elements from the
     * input stream.
     *
     * @param seq    The out parameter holder for the array to be read.
     * @param offset The index into seq of the first element to read from the
     *               input stream.
     * @param length The number of elements to read from the input stream.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    void read_octet_array(org.omg.CORBA.OctetSeqHolder seq, int offset, int length);

    /**
     * Reads array of IDL shorts from offset for length elements from the
     * input stream.
     *
     * @param seq    The out parameter holder for the array to be read.
     * @param offset The index into seq of the first element to read from the
     *               input stream.
     * @param length The number of elements to read from the input stream.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    void read_short_array(org.omg.CORBA.ShortSeqHolder seq, int offset, int length);

    /**
     * Reads array of IDL unsigned shorts from offset for length elements from the
     * input stream.
     *
     * @param seq    The out parameter holder for the array to be read.
     * @param offset The index into seq of the first element to read from the
     *               input stream.
     * @param length The number of elements to read from the input stream.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    void read_ushort_array(org.omg.CORBA.UShortSeqHolder seq, int offset, int length);

    /**
     * Reads array of IDL longs from offset for length elements from the
     * input stream.
     *
     * @param seq    The out parameter holder for the array to be read.
     * @param offset The index into seq of the first element to read from the
     *               input stream.
     * @param length The number of elements to read from the input stream.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    void read_long_array(org.omg.CORBA.LongSeqHolder seq, int offset, int length);

    /**
     * Reads array of IDL unsigned longs from offset for length elements from the
     * input stream.
     *
     * @param seq    The out parameter holder for the array to be read.
     * @param offset The index into seq of the first element to read from the
     *               input stream.
     * @param length The number of elements to read from the input stream.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    void read_ulong_array(org.omg.CORBA.ULongSeqHolder seq, int offset, int length);

    /**
     * Reads array of IDL unsigned long longs from offset for length elements from the
     * input stream.
     *
     * @param seq    The out parameter holder for the array to be read.
     * @param offset The index into seq of the first element to read from the
     *               input stream.
     * @param length The number of elements to read from the input stream.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    void read_ulonglong_array(org.omg.CORBA.ULongLongSeqHolder seq, int offset, int length);

    /**
     * Reads array of IDL long longs from offset for length elements from the
     * input stream.
     *
     * @param seq    The out parameter holder for the array to be read.
     * @param offset The index into seq of the first element to read from the
     *               input stream.
     * @param length The number of elements to read from the input stream.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    void read_longlong_array(org.omg.CORBA.LongLongSeqHolder seq, int offset, int length);

    /**
     * Reads array of IDL floats from offset for length elements from the
     * input stream.
     *
     * @param seq    The out parameter holder for the array to be read.
     * @param offset The index into seq of the first element to read from the
     *               input stream.
     * @param length The number of elements to read from the input stream.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    void read_float_array(org.omg.CORBA.FloatSeqHolder seq, int offset, int length);

    /**
     * Reads array of IDL doubles from offset for length elements from the
     * input stream.
     *
     * @param seq    The out parameter holder for the array to be read.
     * @param offset The index into seq of the first element to read from the
     *               input stream.
     * @param length The number of elements to read from the input stream.
     * @throws <code>org.omg.CORBA.MARSHAL</code> If an inconsistency is detected, including not having registered
     *                                            a streaming policy, then the standard system exception MARSHAL is raised.
     */
    void read_double_array(org.omg.CORBA.DoubleSeqHolder seq, int offset, int length);
} // interface DataInputStream
